package net.cyndeline.GameMap

import net.cyndeline.MovementDirection

/**
 * Used to examine a node on the grid relative to 
 * another node.
 */
trait GridNodeExaminer {

  /** Checks if a node can connect to another node,
   *  based on both of their positions.
   */
  def canConnectTo(node: Tile, connectTo: Tile): Boolean
  
  /** Returns the direction of a ode, relative to another node. */
  def getDirection(node: Tile, comparedTo: Tile): Option[MovementDirection]
  
  /** 
   * @param node Node who's neighbor positions should be retrieved.
   * @return A list of tuples containing every x/y position adjacent to
   * the specified node. These positions are not guaranteed to contain
   * other nodes on an actual grid.
   */
  def getNeighborPositions(node: Tile): List[(Int, Int)]
}